package wxapi

import (
	"bytes"
	"encoding/json"
	"fmt"
	"gitee.com/xmcommon/mlog"
	"net/http"
)

type reqCheckMsg struct {
	Content string `json:"content"`
}

type respCheckMsg struct {
	Errcode int    `json:"errcode"`
	Errmsg  string `json:"errmsg"`
}

func CheckMsg(accessToken, content string) (isRisky, expires bool, err error) {
	req := reqCheckMsg{
		Content: content,
	}
	url := fmt.Sprintf("https://api.weixin.qq.com/wxa/msg_sec_check?access_token=%s", accessToken)
	params, _ := json.Marshal(req)
	request, err := http.NewRequest(http.MethodPost, url, bytes.NewBuffer(params))
	if err != nil {
		mlog.Log.Error(err.Error())
		return
	}
	res, err := commonPost(request)
	if err != nil {
		mlog.Log.Error(err.Error())
		return
	}
	var r respCheckMsg
	err = json.Unmarshal(res, &r)
	if err != nil {
		mlog.Log.Error(err.Error())
		return
	}
	if r.Errcode == 87014 {
		return true, false, nil
	} else if r.Errcode == 42001 {
		return false, true, nil
	} else if r.Errcode != 0 {
		err = fmt.Errorf(r.Errmsg)
		mlog.Log.Error(err.Error())
		return
	}
	return
}

//func CheckImg(accessToken, img string) (isRisky bool, err error) {
//	req := reqCheckImg{
//		MediaType: 2,
//		MediaUrl:  img,
//	}
//	url := fmt.Sprintf("https://api.weixin.qq.com/wxa/media_check_async?access_token=%s", accessToken)
//	params, _ := json.Marshal(req)
//	request, err := http.NewRequest(http.MethodPost, url, bytes.NewBuffer(params))
//	if err != nil {
//		mlog.Log.Error(err.Error())
//		return
//	}
//	res, err := commonPost(request)
//	if err != nil {
//		mlog.Log.Error(err.Error())
//		return
//	}
//	var r respCheckMsg
//	err = json.Unmarshal(res, &r)
//	if err != nil {
//		mlog.Log.Error(err.Error())
//		return
//	}
//	if r.Errcode == 87014 {
//		return true, nil
//	} else if r.Errcode != 0 {
//		err = fmt.Errorf(r.Errmsg)
//		mlog.Log.Error(err.Error())
//		return
//	}
//	return
//}
